//////////////////////////////////////////////////////////////////////////
#pragma once


//////////////////////////////////////////////////////////////////////////
#include <Core/Core.hpp>
#include "Config/JSON.hpp"


namespace Config
{
	//////////////////////////////////////////////////////////////////////////
	class Item
	{
	public:
		// Construction.
		Item( const std::string& key );
		virtual ~Item()			{}

		//
		const std::string&		Key() const;

		virtual bool			Load( const JSONValue& inv )=0;
		virtual JSONValue*		Save() const=0;

	private:
		//
		std::string				mKey;
	};
}
